// // 广度优先搜索
// bfs(handle) {
//     // 1.初始化颜色
//     let color = this._initializeColor()
//     // 2. 创建队列
//     let queue = new Queue
//     // 3. 将传入的顶点放入队列
//     queue.enqueue(this.vertexes[0])
//     // 4.依赖队列操作数据   队列不为空时一直持续
//     while (!queue.isEmpty()) {
//         // 4.1 拿到队头
//         let qVal = queue.dequeue()
//         //  4.2 拿到队头所关联（相连）的点并设置为访问中状态（灰色）
//         let qAdj = this.adjList.get(qVal)
//         color[qVal] = "gray"
//         // 4.3 将队头关联的点添加到队尾
//         // 这一步是完成bfs的关键，依赖队列的先进先出的特点。
//         for (let i = 0; i < qAdj.length; i++) {
//             let a = qAdj[i]
//             if (color[a] === "white") {
//                 color[a] = "gray"
//                 queue.enqueue(a)
//             }
//         }
//         // 4.5设置访问完的点为黑色。
//         color[qVal] = "black"
//         if (handle) [
//             handle(qVal)
//         ]
//     }
// }


// // 调用广度优先算法
// let result = "";
// graph.bfs(graph.vertexes[0], function (v) {
//   result += v + " ";
// });
// console.log(result); // A B C D E F G H I